package com.nf.db.handler.map;

import java.sql.ResultSet;
import java.sql.SQLException;

import static com.nf.db.RowProcessor.DEFAULT_ROWPROCESSOR;

/**
 * 实现的效果就是一个普通的map结构
 * 某一列作为key的值，值得话就是key对应记录行的其它列的数据
 */
public class ColumnMapHandler<K, V> extends AbstractMapHandler<K, V> {
    /**
     * 按照以前的做法，key列要有columnName与columnIndex
     * value这一列也这样，太麻烦，这里省略了
     * 只处理个列明，不管索引
     */
    private String valueColumnName;

    public ColumnMapHandler(String keyColumnName, String valueColumnName) {
        //父类的列明当做此类的key的列明
        super(keyColumnName);
        this.valueColumnName = valueColumnName;

    }

    @Override
    protected V createRow(ResultSet rs) throws SQLException {
        return DEFAULT_ROWPROCESSOR.toScalar(rs, valueColumnName);
    }
}
